首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将windows和forms身份验证与单个自定义角色提供程序一起使用

如何将windows和forms身份验证与单个自定义角色提供程序一起使用
EN

Stack Overflow用户
提问于 2012-04-15 03:53:59
回答 2查看 2.1K关注 0票数 0

我有一个自定义的角色提供程序,它构建在一个角色实体上,在我的表单身份验证用户实体和角色之间有一个称为RoleUser的多对多关系。现在,我想将此角色提供程序切换为使用Windows身份验证。这对我来说似乎很方便,可以利用表单用户,并在我的用户实体中创建AD用户的“影子”。

这是可行的还是不赞成的,关于这种设置有什么好的论文等吗?

我在SQL 2005上使用EF Code First,并且没有使用自定义的成员提供程序,因为我的用户控制器和存储库可以很好地处理我所需要的一切;只需要一个角色提供程序。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-15 16:01:15

请注意,我们有5种类型的身份验证:

1- Anonymous Authentication

2- Asp.net Impersonation

3- Basic Authentication HTTP 401 Challenge

4-表单身份验证HTTP 302登录/重定向

5- Windows身份验证HTTP 401挑战

MVC认证的原理是指,MVC不使用ViewState来认证users.It不使用视图状态或基于服务器的表单。这使得MVC框架非常适合希望完全控制应用程序行为的开发人员。

根据MVC标准,windows身份验证适用于intranet应用程序,而forms身份验证适用于internet应用程序,因为存在安全问题等。

同时使用windows和forms身份验证并不常见。但是你可以像这个codeproject article一样混合使用它们。除非你想做一个像表单身份验证这样的操作,并且在后端通过你的编程能力来存储windows帐户信息,以存储到数据库等。只需确保在身份验证类型之间没有挑战。

还有另一件重要的事情,那就是身份验证和授权之间的区别,你可以在web.config上配置它们,如下所示:

代码语言:javascript
运行
复制
<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication> 
<authorization>
    <deny users="?"/>
</authorization>

代码语言:javascript
运行
复制
<authentication mode="Windows"/>
<authorization>
   <deny users="?"/>
</authorization>

这个MSDN Article可能也会有帮助。

票数 0
EN

Stack Overflow用户

发布于 2012-12-15 16:31:44

本例中的成员资格提供程序可以是使用enitity框架DbContext中的“用户”和“角色”模型的自定义成员资格提供程序。用户模型可能有一个布尔值字段,该字段仅告知用户是否是域用户。在处理域用户时,您可以选择从Active Directory域导入用户。管理员可以只将所需的AD用户导入数据库。一旦他们在数据库中,他们就可以登录了。在帐户控制器登录操作中,我们可以检查用户是否是域用户,然后使用域控制器对用户进行身份验证,然后允许他登录并向他颁发令牌。这里有一篇关于表单的AD身份验证的很好的文章。这是在VB中,但是你可以得到一些东西。此外,您还可以按照本文创建支持这两种身份验证的提供程序。

http://www.cmjackson.net/2009/10/23/asp-net-mvc-using-forms-authentication-with-ldap/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10156873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档