我正在开发支持表单身份验证的ASP.NET MVC5项目.Project目前处于测试阶段,并在Azure上进行在线托管,但项目所有者希望禁用对该站点的所有公共访问(因为站点的某些部分根本不需要用户进行身份验证).
在此测试阶段,我们决定从此链接实施基本HTTP身份验证.我已经更改了代码,因此它更符合我的需求:
public class BasicAuthenticationAttribute : FilterAttribute, IAuthorizationFilter
{
public string BasicRealm { get; set; }
protected string Username { get; set; }
protected string Password { get; set; }
public BasicAuthenticationAttribute(string username, string password)
{
this.Username = username;
this.Password = password;
}
public void OnAuthorization (AuthorizationContext filterContext)
{
var req = filterContext.HttpContext.Request;
var auth = req.Headers["Authorization"];
if (!String.IsNullOrEmpty(auth))
{
var cred = System.Text.ASCIIEncoding.ASCII.GetString(Convert.FromBase64String(auth.Substring(6))).Split(':');
var user = new { Name = cred[0], Pass = cred[1] };
if …Run Code Online (Sandbox Code Playgroud) c# asp.net asp.net-mvc basic-authentication antiforgerytoken
我正在使用ASP.NET MVC5应用程序中的HTML从iTextSharp(5.5.7.0)创建一些PDF文档,但我无法更改字体.我已经尝试了几乎所有我能在SO或其他资源上找到的东西.
PDF生成代码如下:
public Byte[] GetRecordsPdf(RecordsViewModel model)
{
var viewPath = "~/Template/RecordTemplate.cshtml";
var renderedReport = RenderViewToString(viewPath, model);
FontFactory.RegisterDirectory(Environment.GetFolderPath(Environment.SpecialFolder.Fonts));
using (var ms = new MemoryStream())
{
using (var doc = new Document())
{
doc.SetPageSize(PageSize.A4.Rotate());
using (var writer = PdfWriter.GetInstance(doc, ms))
{
doc.Open();
using (var html = new MemoryStream(Encoding.Default.GetBytes(renderedReport)))
{
XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, html, Encoding.Default);
}
doc.Close();
}
}
var bytes = ms.ToArray();
return bytes;
}
}
Run Code Online (Sandbox Code Playgroud)
实际的HTML包含在renderedReport字符串变量中(我有强类型的.cshtml文件,我使用MVC Razor引擎渲染,然后在字符串中返回HTML).
我试图注册一些特定的字体,但这没有帮助.我也尝试在我的机器上注册所有字体(如上例所示),但这也没有帮助.加载了字体我在调试模式下检查过.
CSS嵌入在HTML文件中(在标题,样式标记中),如下所示:
body {
font-size: 7px;
font-family: Comic Sans MS;
}
Run Code Online (Sandbox Code Playgroud)
(为了测试,我决定使用Comic Sans,因为我可以轻松识别它,我实际上对Arial Unicode …