小编Fra*_*nko的帖子

ASP.NET MVC5基本HTTP身份验证和AntiForgeryToken异常

我正在开发支持表单身份验证的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

11
推荐指数
1
解决办法
837
查看次数

iTextSharp HTML到PDF转换 - 无法更改字体

我正在使用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 …

html pdf asp.net-mvc fonts itextsharp

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