具有本地化的ASP.NET MVC2身份验证表单

时间:2010-07-14 19:22:26

标签: asp.net-mvc-2 ldap forms-authentication membership-provider roleprovider

我有两级身份验证,首先用户输入他们的nt /密码,然后由LDAP验证,之后我有一个自定义角色提供程序,确保用户可以访问所述页面。

话虽如此,在我的web.config中我有:

<authentication mode="Forms">
  <forms loginUrl="~/Account.mvc/LogOn" timeout="2880"/>
</authentication>
<authorization>
  <deny users="?"/>
</authorization>
<membership defaultProvider="ADMembershipProvider">
  <providers>
    <add connectionStringName="ADConnString"
         name="ADMembershipProvider"
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         attributeMapUsername="sAMAccountName"
         enableSearchMethods="false"
         applicationName="ProgramName"/>
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="CustomRoleProvider">
  <providers>
    <clear />
    <add name="CustomRoleProvider"
         applicationName="ProgramName"
         type="ProgramName.Providers.CustomRoleProvider"
         attributeMapUsername="sAMAccountName"
         />
  </providers>
</roleManager>

现在,如果我在登录表单中尝试使用语言按钮,则会调用不可用的操作,因为用户仍未进行LDAP身份验证。我的问题是:

我是否可以使用[授权]属性避免对可以进行角色检查的特定操作进行成员资格检查?

我尝试使用:

  <location path="~/Home.mvc/ChangeCulture">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

这不起作用。永远不会调用ChangeCulture操作。

这个答案:

ASP.NET MVC Forms authentication and unauthenticated controller actions

显示如何为角色,成员+角色的任何想法?

感谢。

0 个答案:

没有答案