Tôi đang làm việc trên một trang web đơn giản trong asp.net. Tôi muốn hạn chế quyền truy cập vào một bên, do đó chỉ cho phép người dùng trong một nhóm AD cụ thể. Tôi đã làm điều đó và nó hoạt động tốt. Nhưng khi người dùng không có trong nhóm AD cố truy cập trang web, họ sẽ nhận được lời nhắc đăng nhập. Làm cách nào để chuyển hướng người dùng trái phép đến trang tùy chỉnh, thay vì họ nhận được lời nhắc đăng nhập?Chuyển hướng người dùng trái phép asp net
Dưới đây là web.config của tôi. Phần thấp nhất của mã, là một cái gì đó tôi đã cố gắng nhưng không hoạt động.
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Windows"/>
<authorization>
<allow roles="DOMAIN\GROUP"/>
<deny users="*"/>
</authorization>
</system.web>
<location path="AccessDenied.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
</configuration>
Tôi đã thêm này đến Global.asax.cs:
protected void Application_EndRequest(Object sender, EventArgs e)
{
if (HttpContext.Current.Response.Status.StartsWith("401"))
{
HttpContext.Current.Response.ClearContent();
Server.Execute("AccessDenied.aspx");
}
}
Bất kỳ ý tưởng?
EDIT: Tôi đã thử một số giải pháp đã đăng, nhưng chúng không hoạt động. Nhưng tôi nhận nó làm việc với mã này:
void Application_EndRequest(object sender, System.EventArgs e)
{
if (((Response.StatusCode == 401)
&& (Request.IsAuthenticated == true)))
{
Response.ClearContent();
Response.Redirect("~/AccessDenied.aspx");
}
}
}
vì ' ' nghĩa là bất kỳ người dùng được phép truy cập, bạn phải cho phép một nhóm hoặc người dùng cụ thể. –
Có, vì một số lý do một số web.config không được hiển thị. – mads
'Propmt' có nghĩa là trang lỗi màu vàng phải không ?? –