小编Pan*_*kaj的帖子

url路由到小写如何?


我在asp.net mvc3上开发了一个Web应用程序,现在我需要制作路由,小写
示例:

 that's what i have:
 http://www.example.com/SubFolder/Category/Index => looks ugly :-)

 that's how i would like it:
 http://www.example.com/subfolder/category/index
Run Code Online (Sandbox Code Playgroud)

我发现这篇文章:http:
//goneale.com/2008/12/19/lowercase-route-urls-in-aspnet-mvc/

我实际上需要使用页面底部的global.asax中的代码.

protected void Application_BeginRequest(Object sender, EventArgs e)   
{
    string lowercaseURL = (Request.Url.Scheme + "://" + 
    HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.Url.AbsolutePath);
    if (Regex.IsMatch(lowercaseURL, @"[A-Z]"))
    {
      lowercaseURL = lowercaseURL.ToLower() + HttpContext.Current.Request.Url.Query;
      Response.Clear();
      Response.Status = "301 Moved Permanently";
      Response.AddHeader("Location", lowercaseURL);
      Response.End();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是:
什么时候在开发站上使用它的工作是完美的,但当我上传它,生产它不起作用.

在开发站,它只发布,但在生产它有两个:

POST - status: 301 Moved Permanently 
GET  - status: 200 OK
Run Code Online (Sandbox Code Playgroud)

而且我根本没有被重定向到正确的路线.在开发站,它的工作完美.

asp.net-mvc asp.net-mvc-3

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

如何在急切加载中获取关联表的行:Laravel 5.1

我有三个数据库表.

CREATE TABLE `tblproject` (
  `ProjectID` int(11) NOT NULL,
  `ProjectStatusID` varchar(30) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

CREATE TABLE `tblprojectSkills` (
  `ProjectSkillID` int(11) NOT NULL,
  `ProjectID` int NOT NULL,
  `SkillID` int NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

CREATE TABLE `tblSkills` (
  `SkillID` int(11) NOT NULL,
  `Skill` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
Run Code Online (Sandbox Code Playgroud)

在上表中.SkillID在相关tblSkillstblprojectSkills. ProjectID在相关ProjectprojectSkills

我的项目模型如下.

class Project_Model extends Model
{
    protected $table = "tblproject";
    protected $primaryKey = "ProjectID"; …
Run Code Online (Sandbox Code Playgroud)

php laravel-5 laravel-5.1

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

通过电子邮件而不是SMS发送代码来实现帐户安全:Laravel 5.2

当我们第一次登录我们的Gmail帐户或删除缓存和cookie后,我们会在窗口中输入发送到我们移动设备的代码.

我试图通过电子邮件而不是短信来实现这一点.以下是我实现此方法的方法.

我关注此链接: https: //laravel.com/docs/5.2/session

Session table在数据库中创建.我还可以在会话表记录中看到我的浏览器详细信息.我不确定这是否是正确的方法.

Gmail提供了跟踪多个浏览器的功能.这意味着如果我上次从Firefox登录并且这次从Chrome登录,那么我将再次被要求提供代码.展望未来,如果不删除缓存/ Cookie,我将不会要求我填写Chrome和Firefox的代码.

有人可以给我任何链接,解释如何在保存缓存/ cookie时为多个浏览器提供服务吗?这样我就可以发送安全码的电子邮件

php laravel laravel-5 laravel-5.1 laravel-5.2

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

尝试从管理系统注销特定用户:Laravel 5.2.37

我正在编写以下代码以从Admin System注销特定用户.

我有会话表.我关注此链接:https://laravel.com/docs/5.2/session

$User = $this->Get($obj);
$UserSession = SessionModel::where('user_id', $obj->UserID)->first();
if($UserSession != null) {
    $UserSession->user_id = null;
    $UserSession->payload = null;
    $UserSession->save();
}
Run Code Online (Sandbox Code Playgroud)

这样做是否正确?

php laravel laravel-5 laravel-5.1 laravel-5.2

9
推荐指数
2
解决办法
342
查看次数

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

仅在safari浏览器中,ASP.net MVC中的IFrame中的会话为null

页面包含IFrame,只有在Safari的情况下会话才为空.我的Safari版本是5.1.7

我正在使用MVC 4.5 Everything在其他浏览器中完美运行.我使用以下代码..

protected override void OnResultExecuting(ResultExecutingContext filterContext)
{
     base.OnResultExecuting(filterContext);
     filterContext.HttpContext.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");
     GetFirstError();
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc c#-4.0 asp.net-mvc-3 asp.net-mvc-4

8
推荐指数
3
解决办法
6847
查看次数

Laravel中的Request类中的authorize方法的目的是什么?

今天,我对我的网站安全以及为使网站安全而编写的一些额外代码感到有些困惑。以下是应用安全性的2个位置。

在Route Config中,为了保护路由,我使用了中间件来检查用户角色。

Route::group(['middleware' => ['web', 'SuperAdmin', 'auth']], function () {
    Route::get('/Create-Department', 'DepartmentController@CreateDepartment');
});
Run Code Online (Sandbox Code Playgroud)

我提到了2 Middlewares

  1. Auth Middleware :这是为了authentication
  2. SuperAdmin Middleware:这是为了Authorization

第二个位置是请求类。这是代码。在授权方法中,再次检查与在路径中已做的相同的事情

class DepartmentRequest extends Request
{
    public function authorize()
    {
        if(\Auth::user() == null) {
            return false;
        }
        if(\Auth::user()->isSuperAdmin()) {
            return true;
        }
        return false;
    }

    public function rules()
    {
        return [
            'Department' => 'required',
        ];
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:我应该删除请求类中的支票吗?这是确保请求安全的有害验证吗?由于route.config已经在做这项工作。

授权方法有什么用?我的意思是,我正在使用Request类来验证表单输入。我应该始终从授权方法返回true吗?

php laravel laravel-5 laravel-5.2

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

XHR中的缓存无效

我正在使用XHR GET获取刀片html并尝试缓存它,以便它不需要每次都去服务器下载它.这是我的代码.

但这不起作用,总是去服务器.

$.ajax({
    method: "GET",
    url:    "{!! route('SendMessageForm') !!}",
    cache:  true,
    async:  true,
    beforeSend: function(xhr, opts) {
        $('#MessageModal').html(processingImageUrl);
    },
    success: function(result) {
        $('#MessageModal').html(result);
        PopulateActiveUsers();
    },
    error: function() {
    }
});
Run Code Online (Sandbox Code Playgroud)

调节器

public function SendMessageForm() {
    return View("Chat.SendMessage");
}
Run Code Online (Sandbox Code Playgroud)

标题信息

在此输入图像描述

jquery laravel laravel-5.3 laravel-5.4

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

可以在Request类中授权方法为HandlesAuthorization特性返回自定义消息吗?

我在Request类中有以下代码来检查用户是否有权执行更新.

HandlesAuthorization trait,默认情况下给出默认消息.有没有办法返回自定义消息?我看到在授权方法Request class可以return boolean只值.

class UpdateRoleRequest extends Request
{
    private $UserPermissionsSession;

    public function __construct(IRole $Role) {
        $this->UserPermissionsSession = new UserPermissionsSession();
    }

    public function authorize() {
        $UserID = \Auth::user()->UserID;
        return $this->UserPermissionsSession->CheckPermissionExists($UserID);
    }

}
Run Code Online (Sandbox Code Playgroud)

laravel laravel-5 laravel-request laravel-authorization laravel-5.5

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

在Android Studio 3中渲染Google Recaptcha

我正在使用Android Studio 3

我正在关注这篇文章,以了解如何在Android Studio中使用Google Recaptcha.

使用以下方法安装包: implementation 'com.google.android.gms:play-services-safetynet:12.0.1'

API密钥也已注册.

我看到有onClick事件处理程序但它在哪里提到了渲染recaptcha?

更新1

当我写链接中提到的按钮单击代码时...我得到了一个复杂的错误:无法转换的类型无法将匿名的android.view.view.onclicklistener强制转换为java.util.concurrent.executor

代码在评论中提出

btn_Login.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(final View view) {
        SafetyNet.getClient(this).verifyWithRecaptcha("")
            .addOnSuccessListener((Executor) this,
                new OnSuccessListener<SafetyNetApi.RecaptchaTokenResponse>() {
                    @Override
                    public void onSuccess(SafetyNetApi.RecaptchaTokenResponse response) {
                        // Indicates communication with reCAPTCHA service was
                        // successful.
                        String userResponseToken = response.getTokenResult();
                        if (!userResponseToken.isEmpty()) {
                            // Validate the user response token using the
                            // reCAPTCHA siteverify API.
                        }
                    }
                })
            .addOnFailureListener((Executor) this, new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) { …
Run Code Online (Sandbox Code Playgroud)

recaptcha android-studio-3.0

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