IIS与localhost Context.User.IsInRole()

时间:2014-10-17 18:57:01

标签: c# asp.net iis windows-authentication

使用此代码我来简化我的问题:

<%@ Page Language="c#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
    <HEAD>
        <title>Am I me</title>
        <script language="c#" runat="server">
        private void Page_Load(object sender, System.EventArgs e) {

            Label2.Text = "I am " + HttpContext.Current.User.Identity.Name;
            bool result = Context.User.IsInRole(HttpContext.Current.User.Identity.Name);
            Label1.Text = "Am I me? " + result;
            result = HttpContext.Current.User.IsInRole(HttpContext.Current.User.Identity.Name);
            Label1.Text += "                   Am I myself now? " + result;

        }
        </script>
    </HEAD>
    <body>
        <form id="Form1" runat="server">
            <div>       
                        <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>

            </div>
            <div>

                <asp:Label id="Label1" runat="server" Width="100%" Height="280px"></asp:Label>
           </div>
        </form>
    </body>
</HTML>

当我在本地运行此代码时,它可以正常工作:

LocalHost Image

但是当我在IIS服务器上运行它时:

IIS Server

有谁知道发生了什么事?

我在内联网网站上使用windows-authentiation来澄清。两个用户名也匹配。

1 个答案:

答案 0 :(得分:0)

您询问用户是否位于恰好与用户同名的Windows组中。

来自IsInRole的{​​{3}}:

  

确定当前主体是否属于Windows用户   具有指定名称的组。

我怀疑它在本地计算机上运行的原因是您碰巧拥有一个与您的用户同名的组,而您的用户也是该组的成员。