首页 > 解决方案 > 如何为一组人设置一个登录页面,为另一组人设置另一个登录页面?

问题描述

我要求一种类型的用户使用常规用户名和密码登录(方法 A),另一种类型的登录是通过从下拉框中选择一个值然后输入密码(方法 B)。

方法 A 用户被带到网站的一个部分(部分 A),方法 B 到不同的部分(部分 B)。

我的第一个想法是每个部分的控制器应该有自己的登录表单,但我只能看到一种设置一个表单的方法,即我已经放

<authentication mode="Forms">
  <forms loginUrl="/PartA/Login" />
</authentication>

进入 web.config。我尝试为 B 部分视图添加额外的 web.config,但它被忽略:我被发送到 A 部分的登录区域。

我也尝试添加一个location元素:

<location path="PartB">
  <system.web>
    <authentication mode="Forms">
      <forms loginUrl="/PartB/Login" />
    </authentication>
  </system.web>   
</location>

但这给了我一个解析器错误:

在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的部分是错误的。此错误可能是由未在 IIS 中配置为应用程序的虚拟目录引起的。

有没有办法配置系统根据重定向 URL 重定向登录表单?

我的另一个想法是在主登录页面上设置所有登录选项,并根据重定向 URL 是 A 部分还是 B 部分在它们之间切换,但这似乎不太优雅。

这是唯一的方法吗?

标签: asp.net-mvcauthentication

解决方案


推荐阅读