小编Nat*_*lls的帖子

使用AuthorizeAttribute时最初设置ReturnUrl参数的内容

在ASP.NET MVC项目中,当您使用[Authorize]修饰类或方法并且授权失败时,该站点会自动重定向到登录页面(使用web.config中指定的loginUrl).此外,ASP.NET MVC框架中的某些内容将原始请求的URL作为ReturnUrl参数传递.

什么负责追加这个ReturnUrl?我在项目模板中找不到任何代码.我还看了一下ASP.NET栈源代码中的AuthorizeAttribute 代码,但在那里找不到任何东西.我也尝试在整个ASP.NET堆栈源代码中搜索"returnurl"但找不到任何东西.

我问的原因是我在这个过程中发现了一个错误.您可以通过全新的Internet ASP.NET MVC项目看到这一点.在web.config中将FormsAuth超时设置为1分钟,然后登录.等待一分钟后尝试注销.这将重定向到具有/ account/logoff的ReturnUrl的登录页面,登录后会导致404.我现在使用自己的AuthorizeAttribute解决了这个问题:

public class MyAuthorizeAttribute : AuthorizeAttribute
{
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        base.OnAuthorization(filterContext);

        if (filterContext.Result is HttpUnauthorizedResult)
        {
            string returnUrl = null;
            if (filterContext.HttpContext.Request.HttpMethod.Equals("GET", System.StringComparison.CurrentCultureIgnoreCase))
                returnUrl = filterContext.HttpContext.Request.RawUrl;

            filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary()
            {
                { "client", filterContext.RouteData.Values[ "client" ] },
                { "controller", "Account" },
                { "action", "Login" },
                { "ReturnUrl", returnUrl }
            });
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我想看看源代码,看看我是否可以弄清楚为什么这个bug存在,如果它确实是一个bug.

asp.net-mvc

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

在Xcode 4上下文菜单中禁用"在工作区中查找所选文本..."

这一直困扰着我.在Xcode 4中,有时会启用此菜单项,有时会禁用此菜单项.我无法弄清楚为什么它会被禁用,谷歌似乎根本没有任何关于此的内容.

xcode4

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

startMonitoringSignificantLocationChanges缺乏准确性

我正在开发一个具有以下要求的简单应用程序:任务将在给定位置启动,并且在用户离开一定距离后,任务应自动结束.

我目前正在使用CLLocationManager的startUpdatingLocation将初始GPS位置精确到100米以内.这很好用.

然后我使用CLLocationManager的startMonitoringSignificantLocationChanges来确定用户是否已经走远了.我使用这种方法,因为它在电池寿命方面更好,可以在后台运行等.

现在,我遇到的问题是使用startMonitoringSignificantLocationChanges时返回的位置的准确性.如果我只是让我的手机放在我的桌面上,并等待10-20分钟,它将自动结束任务,因为startMonitoringSignificantLocationChanges返回的位置的准确性(或缺乏).例如:

2011-11-27 20:21:44.653 MyApp[2692:707] Location manager wants 100.000000 meter accuracy
2011-11-27 20:21:44.655 MyApp[2692:707] Location manager got 99.260482 meter accuracy
2011-11-27 20:27:52.975 MyApp[2692:707] visit location: lat 43.619912 long -70.237781
2011-11-27 20:27:52.977 MyApp[2692:707] current location: lat 43.619808 long -70.237561
2011-11-27 20:27:52.981 MyApp[2692:707] moved 21.155182 meters from visit origin
2011-11-27 20:37:53.205 MyApp[2692:707] visit location: lat 43.619912 long -70.237781
2011-11-27 20:37:53.207 MyApp[2692:707] current location: lat 43.628081 long -70.231727
2011-11-27 20:37:53.211 MyApp[2692:707] moved 1030.822457 meters from visit origin
Run Code Online (Sandbox Code Playgroud)

以上都是在没有我将设备移动一英寸的情况下发生的.我的预感是startMonitoringSignificantLocationChanges不够准确,无法完成这个要求.是这样的吗?或者我可能会忽视某些事情?

对于任何反馈,我们都表示感谢.我没有发布任何代码,但它都是非常基本的CLLocationManager东西.如果需要更多信息或代码片段,请与我们联系.

提前致谢!

objective-c core-location ios

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

标签 统计

asp.net-mvc ×1

core-location ×1

ios ×1

objective-c ×1

xcode4 ×1