WCF服务身份验证和授权

时间:2012-03-20 10:56:45

标签: c# wcf authorization wcf-security

我需要在WCF服务上设置身份验证和授权,此时服务已创建且正在运行但无需身份验证。

还需要对存储在SQL数据库中并且已被其他Web应用程序使用的现有用户和密码进行身份验证,但由于我没有它的源代码,并且仍在调整.NET我有一些困难。

我可以读取数据库并在数据库中找到几个aspnet_表,例如aspnet_Users,aspnet_Roles等,到目前为止似乎与Web应用程序中使用的相匹配。

我的问题是如何使用现有数据库轻松实现身份验证和方法授权。

请注意,我无法访问网络应用程序源代码。

感谢。

2 个答案:

答案 0 :(得分:0)

MVC使用标准ASP.Net成员资格提供程序。如果单击“登录”按钮/注册链接 - 可以添加用户。 ASP.Net将创建包含成员资格信息的App_Data \ ASPNETDB.MDF。您可以将ASPNETDB.MDF移动到远程数据库服务器,但必须使用成员资格提供程序架构/数据库(除非您编写自己的提供程序)。

一些MVC链接可以帮助您入门。

http://www.asp.net/mvc/tutorials/older-versions/security/authenticating-users-with-forms-authentication-vb http://weblogs.asp.net/fredriknormen/archive/2007/11/25/asp-net-mvc-framework-security.aspx http://blog.wekeroad.com/blog/aspnet-mvc-securing-your-controller-actions/

添加的默认身份验证/授权配置使用ASP.NET标准成员资格和角色管理器服务提供程序(本地SQL Express服务提供程序)。如果现有数据库(用于用户登录)也是ASP.NET标准sql成员资格数据库,则只需更改成员资格部分的连接字符串即可。否则,您可能需要创建一个自定义成员资格提供程序,它使用您自己的数据库表进行用户身份验证。

实施会员提供商 http://msdn.microsoft.com/en-us/library/f1kyba5e.aspx

为ASP.NET 2.0成员构建自定义提供程序 http://msdn.microsoft.com/en-us/library/aa479048.aspx

答案 1 :(得分:0)

真的没有简单的方法来达到你的要求。 Here是您可以使用的库,并遵循此blog中描述的严格步骤,使用SQL成员资格提供程序为WCF服务设置身份验证。
在我的情况下,我对库进行了小的更新。我已经注释掉了代码行

//if (!IsAnonymousAllowed)