【问题标题】:IIS ASP.NET Impersonation: specific user specified but User.Identity is blankIIS ASP.NET 模拟:指定了特定用户,但 User.Identity 为空
【发布时间】:2019-12-13 09:08:06
【问题描述】:

在以下情况下,应用程序运行良好(意味着User.Identity.Name 被正确识别):

  • 匿名身份验证已禁用
  • ASP.NET 模拟已启用,并设置为使用经过身份验证的用户
  • Windows 身份验证已启用

现在,用户将在域外访问它,并且不应该被要求输入他的登录名/密码,但仍然可以通过身份验证。 所以,我只是做了以下事情:

  • 启用匿名身份验证
  • 将 ASP.NET 模拟设置为此用户域名和密码
  • Windows 身份验证已禁用(尽管在这种情况下不会产生影响)

应用程序正在加载,但User.Identity.Name 是黑色的,我希望它具有在 ASP.NET 模拟中指定的用户。我需要这个 User.Identity.Name 成为有效用户,因为它稍后会在应用程序中使用。

有什么帮助吗?

【问题讨论】:

    标签: asp.net iis iis-7.5 impersonation


    【解决方案1】:

    按照设计,“匿名”意味着您不知道谁已连接。User.Identity。如果在 IIS 中启用匿名身份验证,则名称可能为空。

    您可以使用以下代码检查身份是否可用。

    if (User.Identity.IsAuthenticated)
        Label1.Text = User.Identity.Name;
    else
        Label1.Text = "No user identity available.";
    

    您也可以使用“profile migration”。

    【讨论】:

    • 谢谢,但我指定了要模拟的用户。我还在 IIIS 网站基本配置中的 Connect As 中设置了相同的用户。
    • 在这种情况下,您可以使用表单认证。 link1link2
    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多