标签: http-status-code-401

友好的HTTP 401状态代码消息?

我是一个开发人员,而不是一个文字匠,因此我被困住了.

我们有一个基于订阅的网站,用户很可能会遇到我们的401页面.

我们已经决定需要替换IIS 401; 2页面.

有没有人有任何关于写一个好的非攻击性401页面的例子或建议?

usability http-status-codes http-status-code-401

3
推荐指数
1
解决办法
6797
查看次数

MVC 3 401在托管服务器上未经授权

我有一个MVC 3应用程序,当我尝试从远程服务器访问它时,给我一个401错误,但是当我从本地计算机运行它时,它运行时没有任何错误.

远程服务器已配置IIS 7以允许表单和匿名访问并成功提供静态文件(内容文件),只有当我尝试访问MVC应用程序时,我才会遇到问题.

当我浏览到MVC应用程序时,我得到一个提示,上面写着"Windows安全 - 服务器需要用户名和密码.警告:此服务器请求以不安全的方式发送您的用户名和密码(基本身份验证没有安全连接)."

我已经尝试输入我能想到的所有密码,没有任何东西可以让我访问.

当我单击取消时,我收到服务器错误,上面写着"401 - 未经授权:由于凭据无效而拒绝访问.您无权使用您提供的凭据查看此目录或页面." 我已被重定向到该LogOn页面

我的Web.config文件如下所示:

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
  For more information on how to configure your ASP.NET application, please visit 
  http://go.microsoft.com/fwlink/?LinkId=152368 
  --> 
<configuration> 
  <configSections> 
    <section name="razorJSSettings" type="RazorJS.Configuration.RazorJSSettings, RazorJS" /> 
  </configSections> 
  <connectionStrings> 
    <!--<add name="ApplicationServices" 
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
         providerName="System.Data.SqlClient" />--> 
    <add name="ApplicationServices" connectionString="Data Source=SOURCE; Initial Catalog=thedb; User ID=thedbuser; Password='thedbuserpassword';" /> 
    <add name="GestmeDataContext" connectionString="metadata=res://*/Models.Gestme.csdl|res://*/Models.Gestme.ssdl|res://*/Models.Gestme.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=SOURCE;initial catalog=thedb;persist security info=True;user id=thedbuser;password=thedbuserpassword;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
  </connectionStrings> 
  <appSettings> 
    <add key="webpages:Version" value="1.0.0.0" /> 
    <add key="ClientValidationEnabled" …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc iis-7 http-status-code-401 asp.net-mvc-3

3
推荐指数
1
解决办法
5737
查看次数

DNN 或 IIS 401 未经授权的错误和一些失败的诊断尝试

我正在按照 dotnetnuke.com 上的教程第一次安装 DNN,但我一直被卡住。我有 Windows 8,所以我无法从 Google 获得答案,所以这是我的问题...

当我启动 dnn 的安装向导时,它看起来像这样:

在此处输入图片说明

样式表和图像显然没有加载,错误控制台如下所示:

在此处输入图片说明

好吧,也许这是一个权限问题。我检查了绑定到 IIS 的文件夹的属性,我看到它是只读的:

在此处输入图片说明

但是设置很顽固,无论我取消选中设置并应用于子文件夹/文件多少次

在此处输入图片说明

它总是回到说它是只读的。我什至尝试从命令行强制更改:

在此处输入图片说明

今天早上我开始想,也许我在追错了线索。也许我忽略了一些 IIS 或 DNN 设置。不幸的是,我超出了我的深度。我正在尝试安装 DNN 以便我可以学习它,所以这对我来说是全新的领域。这就是你们,Stack Overflow 的伟大人物,进来的地方。请停顿!谢谢。

iis dotnetnuke http-status-code-401

3
推荐指数
1
解决办法
2663
查看次数

如何使用C#处理401错误响应?

我有一个API返回的json response.当我打电话APIFiddler它时,它给我json reponse 如下所示:

在此输入图像描述

JSON响应: 在此输入图像描述

从网页调用API:

protected void FinalCall()
    {

       // try
       // {
            string url = txtdomainURL.Text.Trim(); 
            string apiname = txtAPIname.Text.Trim();
            string apiURL = apiname+"/"+txtStoreID.Text.Trim()+"/"+txtSerialNo.Text.Trim(); //"duediligence/1/45523354232323424";// 990000552672620";//45523354232323424";
            //duediligence/1/45523354232323424 HTTP/1.1
            string storeID = txtStoreID.Text.Trim();//Test Store ID:1 Live Store ID: 2
            string partnerID = txtPartnerID.Text.Trim();// "1";
            string scretKey = txtSecretKey.Text.Trim();// "234623ger787qws3423";
            string requestBody = txtRequestBody.Text.Trim(); //"{\"category\": 8}";
            string data = scretKey + requestBody;


            string signatureHash = SHA1HashStringForUTF8String(data);
            lblSignatureHash.Text = signatureHash;
            String userName …
Run Code Online (Sandbox Code Playgroud)

c# asp.net json exception-handling http-status-code-401

3
推荐指数
1
解决办法
7088
查看次数

使用API​​路由时,请在未经授权的情况下返回Http Response 401,而不是重定向到登录页面

我正在使用MVC和WebAPI构建一个ASP.NET Core 2.0网站,以提供对一系列微服务的访问.如果WebAPI控制器要求用户进行身份验证和授权(使用该Authorize属性),则任何未经授权或未登录的用户都会将响应作为MVC登录页面的整个HTML获取.

当未经授权的用户访问API时,我想在响应中返回HTTP状态代码401及其相关的错误消息,而不是整个HTML页面.

我已经看了一些现有的问题,并注意到他们要么引用ASP.NET MVC(例如WebApi.Owin中的SuppressDefaultHostAuthentication也禁止webapi之外的身份验证),这对ASP.NET Core 2.0没有好处.或者他们正在使用Core 1.x的hackaround,这似乎不对(ASP.Net核心MVC6重定向到未经授权时登录).

在Core 2.0中是否有适当的解决方案,任何人都知道?如果没有,任何想法如何正确实施?

作为参考,以控制器的一部分为例:

[Authorize]
[ApiVersion("1.0")]
[Produces("application/json")]
[Route("api/V{ver:apiVersion}/Organisation")]
public class OrganisationController : Controller
{
    ...

    [HttpGet]
    public async Task<IEnumerable<string>> Get()
    {
        return await _organisationService.GetAllSubdomains();
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

以及Statup.cs中的配置:

public void ConfigureServices(IServiceCollection services)
{
    ...

    // Add API version control
    services.AddApiVersioning(options =>
    {
        options.ReportApiVersions = true;
        options.AssumeDefaultVersionWhenUnspecified = true;
        options.DefaultApiVersion = new ApiVersion(1, 0);
        options.ErrorResponses = new DefaultErrorResponseProvider();
    });

    // Add and configure MVC services. …
Run Code Online (Sandbox Code Playgroud)

httpresponse http-status-code-401 asp.net-core-webapi asp.net-core-2.0

3
推荐指数
1
解决办法
1613
查看次数

Angular 7错误拦截器–原始通话出现问题

Angular 7错误拦截器–原始调用存在问题我编写了一个拦截器来捕获所有401错误。如果发生此类错误,则应尝试获取新的JWT令牌,如果可行,请重复原始请求。到目前为止,拦截器已经起作用。我的问题是,在我给它新令牌后发出的原始请求不会在附加到原始可观察对象的订阅中再次终止。

原始要求

零件:

this.serviceModel.getSearchItems(si).subscribe(res => {
   this.resultData = res;
});
Run Code Online (Sandbox Code Playgroud)

服务模型

public getSearchItems(si: SearchInfo): Observable<VoList<SearchResultItemVO>> {
   return this.post<VoList<SearchResultItemVO>>(`/api/Search/GetSearchItems`, si, null,  SearchResultItemVO);
}
Run Code Online (Sandbox Code Playgroud)

拦截器

@Injectable()
export class ErrorInterceptor implements HttpInterceptor {
  constructor(private serviceModel: SharedAccountServiceModel) {}

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(request).catch(err => {
      return this.handleError(err, request, next);
    });
  }
  handleError(err, request: HttpRequest<any>, next: HttpHandler) {
    if (err.status === 401) {
      if (!!localStorage.getItem('auth_token') &&     !!localStorage.getItem('refresh_token')) {
        this.serviceModel.refreshlogin().switchMap(res => {
          return next.handle(this.addAuthenticationToken(request));
    })
    .subscribe();
  }
  else {
    localStorage.removeItem('accessinfo');
    localStorage.removeItem('auth_token');
    localStorage.removeItem('userid'); …
Run Code Online (Sandbox Code Playgroud)

http-status-code-401 angular-http-interceptors angular

3
推荐指数
1
解决办法
3564
查看次数

Angular,从发布请求中获取状态代码值

我想从发布请求中获取 StatusCode 值,以便在我的组件中使用它。这就是我所做的:
Api 调用:

  Login(user: User) {
    return this.http.post(apiUrl + 'account/Login', user).subscribe();
  }
Run Code Online (Sandbox Code Playgroud)

组件中的方法:

  Login() {
    this.user.UserName = this.loginForm.controls.userName.value;
    this.user.Password = this.loginForm.controls.password.value;

    this.api.Login(this.user)
  }
Run Code Online (Sandbox Code Playgroud)

现在仅显示为错误 在此输入图像描述 结果应该是这样的: 在此输入图像描述

更新
这不是cors问题...
成功登录: 在此输入图像描述

http-status-code-401 angular angular7

3
推荐指数
1
解决办法
1万
查看次数

职员身份验证 - GET http://localhost:3000/ 401(未经授权) - 登录/注销后 401 循环

再会,

我一直在尝试使用应用程序路由器在下一个最新版本上设置 Clerk。

我已经阅读了写得很好的文档,而且设置起来似乎非常简单,所以我在我一直在从事的一个新项目上尝试了一下。

我已按照 CLerk 提供的入门说明进行操作,但没有成功:https://clerk.com/docs/nextjs/get-started-with-nextjs

我面临的问题是,一旦登录或注册获得授权,我就会被重定向到我按计划在 env.local 中设置的路由,但我开始无限循环 GET http://localhost:3000/ 401 (未经授权)错误。摆脱该循环的唯一方法是停止 Next 服务器或删除 Clerk 存储的本地存储文件

我虽然在初始设置中犯了错误,但每次我查看说明时,我都会一遍又一遍地面临同样的问题。

我还尝试在 Github clerkinc/clerk-next-app-router-starter 上运行 Clerk 提供的示例,但出现了相同的错误。我执行的唯一手动设置是在 .env.local 文件中添加 API 密钥和 Secret

-遵循 CLerk 提供的入门说明 -尝试多个浏览器 (Firefox/Chrome) -运行 clerkinc/clerk-next-app-router-starter 存储库示例 -创建另一个 Clerk 应用程序 9 个用户池)

如上所述,一切似乎都是根据官方文档设置的

我期待着利用一个身份验证产品来完成大部分繁重的工作。任何人都面临同样的问题,或者会推荐一条研究路径,因为我在这里失去了主意?

谢谢

http-status-code-401 app-router next.js clerk

3
推荐指数
1
解决办法
5960
查看次数

使用ASP.NET MVC重定向到FormsAuthentication登录页面时显示有用的消息

我想制作一个AuthorizeAttribute包含Message属性的自定义.问题是,我的FormsAuthentication重定向到指定的loginUrl.该视图如何访问属性的Message属性?

例如,我使用自定义AuthorizeAttribute进行此操作

[Authorize(Message="You must be logged in to see user settings.")]
public ActionResult Settings()
{
    return View();
}
Run Code Online (Sandbox Code Playgroud)

FormsAuthentication如果用户没有登录,它会被重定向到/ Account/LogOn(感谢web.config中的设置).我想在LogOn View上显示"您必须登录才能看到用户设置",以便用户知道为什么他们被重定向到LogOn页面

asp.net-mvc forms-authentication authorize-attribute http-status-code-401

2
推荐指数
1
解决办法
1297
查看次数

如何使用带有JQuery的书签,作为跨域请求(CORS)发送403 Authentication头?

所以我有一个在其他网站上执行javascript的bookmarklet,我想在点击它上面403 Authentication RequiredCache按钮后触发一个标题.这样,会出现一个提示,要求他们登录.

苹果网站上的clickrobot

问题是,我并不打算提供带有我正在制作的ajax请求的身份验证标头,同时Access-Control-Allow-Origin:设置了具有该*值的任何域.我应该明确定义哪个域我想允许403身份验证标头出现,但我不能.

这是我的代码.

的.htaccess

header set Access-Control-Allow-Origin: *
#header set Access-Control-Allow-Methods: GET, POST, PUT, DELETE
header set Access-Control-Allow-Headers: Authorization
Run Code Online (Sandbox Code Playgroud)

JQuery的

$.ajax({
            headers : {
                "Authorization" : "Basic TVNF3TQtU1BGMjAx6C12bVxzbW4ydHBvaW50OlF3Z5J0eSEyM6Q1"
            },
            type: "GET",
            url: 'http://desbest.uk.to/clickrobot/favicon.png', //image for testing
            crossDomain:true,
            xhrFields: {
                withCredentials: true
            }, 
            //contentType: "application/json; charset=utf-8",
            //dataType: "json",
            success: function(data) {
                alert('ok!');
                //formatData(format_type,data);
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert(textStatus + ' / ' + errorThrown);
            }
        }); 
Run Code Online (Sandbox Code Playgroud)

我得到的错误

当credentials标志为true时,无法在Access-Control-Allow-Origin中使用通配符.

我已经看过Diigo …

javascript authentication jquery cors http-status-code-401

2
推荐指数
1
解决办法
1952
查看次数