使用自定义HttpHandler进行Clickonce授权?

时间:2014-09-11 21:42:16

标签: c# asp.net httphandler ihttphandler

我的任务是找到一种方法来控制对ClickOnce链接的访问,使用Forms身份验证。

Google快速搜索引导我this article: Make ClickOnce Work With ASP.NET Forms Authentication。 在尝试实现这个复杂的过程之后,我意识到如果编写了一个简单的IHttpHandler来处理所有ClickOnce文件类型(例如 .application,.deploy ),那么我可以轻松地检查当前用户是否经过验证。

所以我的处理程序将是:

public class ClickOnceApplicationHandler : IHttpHandler
{
    public bool IsReusable
    {
        get { return true; }
    }
    /// <summary>
    /// Entry point for the handler, here we determine if we have an authenticated user.
    /// </summary>
    /// <param name="context"></param>
    /// <remarks></remarks>
    public void ProcessRequest(System.Web.HttpContext context)
    {
        var _path = context.Server.MapPath(context.Request.Path).ToLower();
        if (context.User.Identity.IsAuthenticated && System.IO.File.Exists(_path))
        {
            if (_path.EndsWith(".application") || _path.EndsWith(".fuple"))
            {
               //do the stuff I need to here if user is authenticated.
               //redirect to the myapp.appication

            }
        }
        else
        {
            throw new HttpException(404, "File not found");
        }
    }
}

任何人都可以看到未经授权的用户如何过去吗?

0 个答案:

没有答案