2014-10-17 3 views
1

Используя этот код, который я сделал, чтобы упростить свою задачу:IIS против локальный Context.User.IsInRole()

<%@ 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-аутентификацию на сайтах интрасети, чтобы уточнить. Также имена пользователей совпадают.

+0

Возможно, вам необходимо внести некоторые изменения в файл web.config, возможно, имя файла cookie/домен – Aristos

+0

@Aristos Я не использую файлы cookie на этой странице. Части web.config, которые могут повлиять на него? ' \t ' – Hillboy

ответ

0

Вы спрашиваете, находится ли пользователь в группе Windows, которая имеет то же имя, что и пользователь.

С Microsoft documentation для IsInRole:

Определяет, принадлежит ли текущий основной к пользователю группе Windows, с указанным именем.

Я подозреваю, что причина, по которой он работает на вашей локальной машине, состоит в том, что у вас, как правило, есть группа с тем же именем, что и ваш пользователь, и ваш пользователь также является членом этой группы.

+0

Я использую один и тот же компьютер и имя пользователя для входа на оба сайта. Мое имя пользователя, даже «локальное», прикреплено к домену, поэтому все группы, в которых я состою, являются одинаковыми. – Hillboy

+0

Да, но один сайт, как представляется, является процессом визуальной студии, а другой - IIS. Сравнение поведения, особенно в отношении безопасности, в этих двух приложениях не является безопасной ставкой (приложение для размещения Visual Studio работает как текущий пользователь, а IIS работает как пользователь, определенный в пуле приложений). –

Смежные вопросы