Я использую аутентификацию на основе OWIN в своем приложении MVC. Все мои контроллеры и методы действий защищены специальным атрибутом AuthorizeAttribute.ASP.Net MVC 5 - OWIN Аутентификация логина переадресация отображаемого сообщения
В настоящее время, если пользователь запрашивает страницу с недостаточными разрешениями (у пользователя нет доступа, поскольку он не находится в группе, имеющей доступ к функции), он перенаправляется на страницу входа. Такое поведение может смутить пользователя, потому что он не знает, почему он был перенаправлен на страницу входа в систему.
Возможно ли отобразить сообщение в этом случае? ... Может ли OWIN добавить параметр в запрос страницы входа (что-то вроде параметра ReturnUrl)?
Благодарим за помощь.
Edit:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false)]
public class FunctionAuthorizeAttribute : AuthorizeAttribute
{
public IUserInformationService UserInformationService { get; set; }
public IGenericParameterService GenericParameterService { get; set; }
public String FunctionName { get; set; }
public FunctionAuthorizeAttribute(String functionName)
{
FunctionName = functionName;
}
protected override Boolean AuthorizeCore(HttpContextBase httpContext)
{
var parameter = GenericParameterService.GetCommonParameters();
if (!parameter.CacheSecurityParameter)
parameter = GenericParameterService.GetCommonParameters(false);
return !parameter.EnableAuthentication || UserInformationService.HasAccess(FunctionName)
}
}
Можете ли вы показать свой собственный атрибут? – Kamo
@Kamo Конечно, но вы не найдете там ничего интересного ... Наверное. Я добавил код к вопросу. – musium