2015-05-11 17 views
5

Tôi đang phát triển ứng dụng ASP.NET MVC 5 với .NET Framework 4.5.1 và C#.Đặt tên Vai trò AD trên web.config

Tôi đang sử dụng Windows authentication để cho phép một số người dùng truy cập vào bộ điều khiển của mình. Đây là web.config tập tin của tôi:

<system.web> 
    <compilation debug="true" targetFramework="4.5.1" /> 
    <httpRuntime targetFramework="4.5.1" /> 
    <authentication mode="Windows" /> 
    <authorization> 
    <deny users="?" /> 
    </authorization> 
    <roleManager enabled="true" defaultProvider="WindowsProvider"> 
    <providers> 
     <clear /> 
     <add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider" /> 
    </providers> 
</roleManager> 
</system.web> 

Và đây là Authorize thuộc tính của tôi:

[Authorize(Roles = @"MyDomain\MyUploadRole")] 
public class UploadController : Controller 
{ 
    // ... 
} 

tôi muốn thêm vào chuỗi @"MyDomain\MyUploadRole" đến web.config nhưng tôi không biết làm thế nào để làm điều đó.

Tôi đã thử nghiệm này SO answer, nhưng nó không hiệu quả đối với tôi. Tôi đã thêm phần này để web.config file:

<roles> 
    <add key="Role1" value="MyDomain\MyUploadRole" /> 
    <add key="Role2" value="MyDomain\Another role" /> 
</roles> 

Và sau đó, tôi thay đổi này trên bộ điều khiển:

[Authorize(Roles = @"Role1")] 
public class UploadController : Controller 
{ 
    // ... 
} 

Và Internet Explorer yêu cầu thông tin của tôi, nhưng tôi nhận được phản ứng trái phép.

Làm cách nào để đặt tên vai trò trên web.config?

+0

gì với một cái gì đó như thế: DasDas

+0

@DasDas Một số bộ điều khiển cần một vai trò và một số bộ điều khiển không cần. – VansFannel

+0

Tại sao câu trả lời đó không phù hợp với bạn? – mattytommo

Trả lời

0

Có thể điều này sẽ làm việc cho bạn:

<configuration>  
<system.web> 
    <authentication mode="Windows"/> 
    <authorization> 
    <allow roles="MyDomain\MyUploadRole"/> 
    <deny users="?"/> 
    </authorization> 
    <identity impersonate="true"/> 
</system.web> 

Và trong mã của bạn, bạn có thể kiểm tra để xem liệu người dùng đang ở trong một vai trò như thế này:

HttpContext.Current.User.IsInRole("MyDomain\MyUploadRole") 
Các vấn đề liên quan