Как показать пользовательские 404 страницы в ASP.NET без перенаправления?

Хранение имен пользователей и паролей в открытом тексте, очень плохая практика безопасности. Я рекомендовал бы Вам использовать хранилище ключа Azure или любой другой альтернативный подход для хранения учетных данных.

Обратите внимание на то, что хранение любого вида учетных данных не, рекомендуют. Но тем не менее необходимо реализовать его тогда, можно сделать что-то как ниже:

1) Создают голубое ключевое хранилище и хранят всю Вашу информацию, идентификатор пользователя и пароль в ключевом хранилище только.

2) MSI Azure Использования или сервисная аутентификация принципала в powershell для аутентификации сценария с ключевым хранилищем.

3) идентификатор Пользователя доступа и пароль от ключевого хранилища и затем наконец выполняют Ваш вход в систему.

можно относиться ниже документа за пониманием потока доступа хранилища ключа Azure.

https://docs.microsoft.com/en-us/azure/key-vault/quick-create-powershell

Hope это помогает.

5
задан usr 2 September 2009 в 13:41
поделиться

2 ответа

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

public class CustomErrorsTransferModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
        context.Error += Application_Error;
    }

    public void Dispose()  {  }

    private void Application_Error(object sender, EventArgs e)
    {
        var error = Server.GetLastError();
        var httpException = error as HttpException;
        if (httpException == null)
            return;

        var section = ConfigurationManager.GetSection("system.web/customErrors") as CustomErrorsSection;
        if (section == null)
            return;

        if (!AreCustomErrorsEnabledForCurrentRequest(section))
            return;

        var statusCode = httpException.GetHttpCode();
        var customError = section.Errors[statusCode.ToString()];

        Response.Clear();
        Response.StatusCode = statusCode;

        if (customError != null)
            Server.Transfer(customError.Redirect);
        else if (!string.IsNullOrEmpty(section.DefaultRedirect))
            Server.Transfer(section.DefaultRedirect);
    }

    private bool AreCustomErrorsEnabledForCurrentRequest(CustomErrorsSection section)
    {
        return section.Mode == CustomErrorsMode.On ||
               (section.Mode == CustomErrorsMode.RemoteOnly && !Context.Request.IsLocal);
    }

    private HttpResponse Response
    {
        get { return Context.Response; }
    }

    private HttpServerUtility Server
    {
        get { return Context.Server; }
    }

    private HttpContext Context
    {
        get { return HttpContext.Current; }
    }
}

включить в вашем web.config так же, как и любой другой модуль

<httpModules>
     ...
     <add name="CustomErrorsTransferModule" type="WebSite.CustomErrorsTransferModule, WebSite" />
     ...
</httpModules>
1
ответ дан 14 December 2019 в 13:42
поделиться

Вы можете использовать

Server.Transfer("404error.aspx")
-1
ответ дан 14 December 2019 в 13:42
поделиться