自定义角色提供者。未检测到用户名
Custom Role Provider. Username not being detected
我已经在 C# MVC 应用程序中实现了客户角色提供程序。
它似乎没有检测到 Windows 用户。
昨天运行良好。
它的配置如下所示:
<system.web>
<authentication mode="Windows" />
<roleManager defaultProvider="MyRoleProvider" enabled="true">
<providers>
<clear />
<add name="MyRoleProvider" type="CWC_Service_Plan.Security.MyRoleProvider" />
</providers>
</roleManager>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
</system.web>
但是在代码中添加一个断点我可以看到没有检测到用户。
我一定是在不知不觉中改变了什么。可能是什么原因造成的?
[编辑]
角色提供者通过获取 Windows 用户名然后使用它进行身份验证来工作。
如果无法获取用户名,则不会进行身份验证。
问题是为什么用户名没有被提取,我认为这是一个大问题,所以所有的建议都是很好的建议。
[/编辑]
您是否禁用了匿名访问?
参见Configuring Windows Authentication:
- 启动 Internet 信息服务 (IIS)。
- 右键单击应用程序的虚拟目录,然后单击“属性”。
- 单击目录安全选项卡。
- 在匿名访问和身份验证控制下,单击编辑。
- 确保匿名访问复选框未被 select 选中并且集成 1。Windows 身份验证是唯一 select 选中的复选框。
这也适用于Visual Studio,它是web项目的属性(selectweb项目并按F4):
我已经在 C# MVC 应用程序中实现了客户角色提供程序。
它似乎没有检测到 Windows 用户。
昨天运行良好。
它的配置如下所示:
<system.web>
<authentication mode="Windows" />
<roleManager defaultProvider="MyRoleProvider" enabled="true">
<providers>
<clear />
<add name="MyRoleProvider" type="CWC_Service_Plan.Security.MyRoleProvider" />
</providers>
</roleManager>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
</system.web>
但是在代码中添加一个断点我可以看到没有检测到用户。
我一定是在不知不觉中改变了什么。可能是什么原因造成的?
[编辑]
角色提供者通过获取 Windows 用户名然后使用它进行身份验证来工作。
如果无法获取用户名,则不会进行身份验证。
问题是为什么用户名没有被提取,我认为这是一个大问题,所以所有的建议都是很好的建议。
[/编辑]
您是否禁用了匿名访问?
参见Configuring Windows Authentication:
- 启动 Internet 信息服务 (IIS)。
- 右键单击应用程序的虚拟目录,然后单击“属性”。
- 单击目录安全选项卡。
- 在匿名访问和身份验证控制下,单击编辑。
- 确保匿名访问复选框未被 select 选中并且集成 1。Windows 身份验证是唯一 select 选中的复选框。
这也适用于Visual Studio,它是web项目的属性(selectweb项目并按F4):