Raf*_*per 2 c# asp.net-web-api
我正在使用这个非常有趣的课程,但我遇到了一些问题.
http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api
我得到证书错误但我明白为什么会出现这个问题.此证书应连接到我的计算机名称.我不明白他如何生成此证书以及如何编辑此问题.
这是重要的代码.用证书名称解决这个问题需要做些什么?
using System;
using System.Net;
using System.Net.Http;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
namespace LocalAccountsApp.Filters
{
public class RequireHttpsAttribute : AuthorizationFilterAttribute
{
public int Port { get; set; }
public RequireHttpsAttribute()
{
Port = 443;
}
public override void OnAuthorization(HttpActionContext actionContext)
{
var request = actionContext.Request;
if (request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
var response = new HttpResponseMessage();
if (request.Method == HttpMethod.Get || request.Method == HttpMethod.Head)
{
var uri = new UriBuilder(request.RequestUri);
uri.Scheme = Uri.UriSchemeHttps;
uri.Port = this.Port;
response.StatusCode = HttpStatusCode.Found;
response.Headers.Location = uri.Uri;
}
else
{
response.StatusCode = HttpStatusCode.Forbidden;
}
actionContext.Response = response;
}
else
{
base.OnAuthorization(actionContext);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
那个错误是正确的.您使用的证书是由域本身签署的localhost.由于它未由受信任的证书根(例如Verisign)签名,因此您的浏览器会警告您证书无效,因此该站点可能是非法的.
该错误不应该导致功能问题,并且当您部署到生产时,您应该获得为您正在部署的域签名的受信任证书.
您不会让任何人为域签署证书localhost,但如果错误困扰您,您可以使用MMC将您正在使用的证书添加到受信任的根证书列表中,如本TechNet文章中所述.
| 归档时间: |
|
| 查看次数: |
1981 次 |
| 最近记录: |