我有一个应用程序向VB论坛软件发送POST请求并记录某人(没有设置cookie或任何东西).
一旦用户登录,我创建一个在其本地计算机上创建路径的变量.
C:\ tempfolder \日\用户名
问题是一些用户名正在抛出"非法字符"异常.例如,如果我的用户名是,mas|fenix它会抛出异常..
Path.Combine( _
Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData), _
DateTime.Now.ToString("ddMMyyhhmm") + "-" + form1.username)
Run Code Online (Sandbox Code Playgroud)
我不想从字符串中删除它,但是在服务器上通过FTP创建了带有用户名的文件夹.这导致了我的第二个问题.如果我在服务器上创建一个文件夹,我可以留下"非法字符"吗?我只是问这个,因为服务器是基于Linux的,我不确定Linux是否接受它.
编辑:似乎URL编码不是我想要的..这是我想要做的:
old username = mas|fenix
new username = mas%xxfenix
Run Code Online (Sandbox Code Playgroud)
其中%xx是ASCII值或任何其他可以轻松识别字符的值.
在我的ASP.NET MVC应用程序上,我正在尝试实现如下的URL:
/产品/标签/为+家庭
当我尝试使用默认配置运行我的应用程序时,我收到404.11响应代码的消息:
HTTP错误404.11 - 未找到
请求过滤模块被配置为拒绝包含双转义序列的请求.
我可以通过在web.config中实现以下代码来解决此错误:
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true" />
</security>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
所以,现在我没有得到任何404.11.
我想知道的是,我正在用这种实现打开什么样的安全漏洞.
顺便说一句,我的应用程序正在.Net Framework 4.0运行IIS 7.5.