Как сайты.NET скрывают .aspx расширение своих файлов?

Вам нужно создать функцию VBA, которая возвращает имя пользователя, а затем использовать функцию в запросе.

Public Function GetUserName() As String
    ' GetUserName = Environ("USERNAME")
    ' Better method, see comment by HansUp
    GetUserName = CreateObject("WScript.Network").UserName
End Function

и

SELECT foo FROM bar WHERE myUserName = GetUserName();
29
задан z-boss 12 November 2008 в 04:07
поделиться

8 ответов

В случае стекового потока они используют ASP.NET MVC, а не веб-формы ASP.NET. В веб-формах URL-адрес указывает на файл на вашем диске, а MVC указывает на действие контроллера. Если вы используете веб-формы, вы хотите использовать переписывание URL. У Скотта Гатри есть хорошая статья о переписывании URL.

25
ответ дан nlinus 14 October 2019 в 07:49
поделиться

Скорее всего, это сделано с помощью перезаписи URL ...

Веб-сервер принимает URL-адреса, аналогичные адресам в адресной строке вашего браузера & amp; переназначение их на страницы ASPX за кулисами

Это можно сделать в модуле HTTP .NET или в качестве обработчика ISAPI в IIS

На своем сайте Скотт Гатери имеет хорошую статью о перезаписи URL

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

9
ответ дан Eoin Campbell 14 October 2019 в 07:49
поделиться

Вы можете сделать это в c # .NET, чтобы использовать настраиваемое расширение в вашем URL в ASP.NET.

Пусть «.recon» в коде будет вашим индивидуальным расширением. (т.е. замените «.recon» на свое собственное расширение)

 protected void Application_BeginRequest(object sender, EventArgs e)
 {
    HttpApplication app = sender as HttpApplication;
    if (app.Request.Path.ToLower().IndexOf(".recon") > 0)
    {
        string rawpath = app.Request.Path;
        string path = rawpath.Substring(0, rawpath.IndexOf(".recon"));
        app.Context.RewritePath(path+".aspx");
    }
 }
0
ответ дан king zecole 14 October 2019 в 07:49
поделиться

Этот сайт использует платформу ASP.NET MVC и карту URL для маршрутов, а не физических страниц. Маршрут переходит к контроллеру, который затем решает, как отобразить страницу.

16
ответ дан Craig 14 October 2019 в 07:49
поделиться

Вы можете сделать это и многое другое с перезаписью ISAPI (для IIS). Это позволяет вам создавать дружественные URL без всех уродливых строк запроса. Это дает пользователям более удобный интерфейс и может сделать ваш контент более доступным для поиска.

Если вы используете Apache, используйте mod_rewrite.

Основная предпосылка обоих заключается в том, что они берут дружественный URL-адрес (например, тот, который вы видите для этого сайта), а затем преобразуют его, используя серию правил (обычно это заданные вами регулярные выражения), во внутренние URL-адреса или строки запросов, которые легко понять по коду.

Примером может быть то, что они преобразуют posts/edit/<postnumber> в editPost.aspx?postNumber=<postnumber> с помощью правила преобразования.

3
ответ дан vfilby 14 October 2019 в 07:49
поделиться

и в качестве причины:

  • вы можете изменить технологию (скажем, PHP) без индексации или добавления закладок в URL, не нарушая
  • ваши URL более «REST» и соответствуют к ресурсам, а не только к файлу
  • , вы можете запомнить URL или прочитать его кому-нибудь по телефону более легко
-2
ответ дан Simon_Weaver 14 October 2019 в 07:49
поделиться

Вы можете добиться этого, изменив файл web.config.

<configuration>
<system.webserver>
<rewrite>
   <rules>
            <rule name="RemoveASPX" enabled="true" stopProcessing="true">
                <match url="(.*)\.aspx" />
                <action type="Redirect" url="{R:1}" />
            </rule>
            <rule name="AddASPX" enabled="true">
                <match url=".*" negate="false" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    <add input="{URL}" pattern="(.*)\.(.*)" negate="true" />
                </conditions>
                <action type="Rewrite" url="{R:0}.aspx" />
            </rule>
   </rules>
</rewrite>
</system.webserver>
</configuration>
6
ответ дан Musakkhir Sayyed 14 October 2019 в 07:49
поделиться

Как и другие люди, StackOverflow создается с использованием ASP.NET MVC, а ASP.NET MVC использует System.Web.Routing. Однако System.Web.Routing не является частью ASP.NET MVC, он был RTMd с пакетом обновления 1 (SP1) и означает, что его можно использовать без ASP.NET MVC. Вы можете увидеть, как использовать его с WebForms здесь: http://haacked.com/archive/2008/03/11/using-routing-with-webforms.aspx и здесь: http: //www.codeplex.com/ASPNET35Routing

4
ответ дан Chris Canal 14 October 2019 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: