Add support page, admin features, and auth hardening.

Rename public affiliate route to /support with localized nav labels, and include affiliate/social/wallpaper admin, 2FA login, and related site updates.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Atakan Doğan Özban
2026-07-29 20:25:55 +02:00
co-authored by Cursor
parent 202dc16a52
commit fc45c35dbe
149 changed files with 3496 additions and 11263 deletions
+83 -139
View File
@@ -17,7 +17,7 @@
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<MvcBuildViews>false</MvcBuildViews>
<UseIISExpress>true</UseIISExpress>
<Use64BitIISExpress />
<Use64BitIISExpress>false</Use64BitIISExpress>
<IISExpressSSLPort>44329</IISExpressSSLPort>
<IISExpressAnonymousAuthentication />
<IISExpressWindowsAuthentication />
@@ -45,6 +45,9 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f, processorArchitecture=MSIL">
<HintPath>packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>packages\EntityFramework.6.5.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>
@@ -73,6 +76,12 @@
<Reference Include="Microsoft.Net.Http.Headers, Version=2.3.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.Net.Http.Headers.2.3.0\lib\netstandard2.0\Microsoft.Net.Http.Headers.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Web.Infrastructure, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.Web.Infrastructure.2.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Buffers.4.6.0\lib\net462\System.Buffers.dll</HintPath>
@@ -98,6 +107,27 @@
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.AspNet.WebPages.3.2.9\lib\net45\System.Web.Helpers.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=5.2.9.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.AspNet.Mvc.5.2.9\lib\net45\System.Web.Mvc.dll</HintPath>
</Reference>
<Reference Include="System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll</HintPath>
</Reference>
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.AspNet.Razor.3.2.9\lib\net45\System.Web.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.AspNet.WebPages.3.2.9\lib\net45\System.Web.WebPages.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.AspNet.WebPages.3.2.9\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.AspNet.WebPages.3.2.9\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" />
@@ -107,52 +137,13 @@
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="Microsoft.Web.Infrastructure, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>packages\Microsoft.Web.Infrastructure.2.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http">
</Reference>
<Reference Include="System.Net.Http.WebRequest">
</Reference>
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>packages\Microsoft.AspNet.WebPages.3.2.9\lib\net45\System.Web.Helpers.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=5.2.9.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>packages\Microsoft.AspNet.Mvc.5.2.9\lib\net45\System.Web.Mvc.dll</HintPath>
</Reference>
<Reference Include="System.Web.Optimization">
<HintPath>packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll</HintPath>
</Reference>
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>packages\Microsoft.AspNet.Razor.3.2.9\lib\net45\System.Web.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>packages\Microsoft.AspNet.WebPages.3.2.9\lib\net45\System.Web.WebPages.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>packages\Microsoft.AspNet.WebPages.3.2.9\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>packages\Microsoft.AspNet.WebPages.3.2.9\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="WebGrease">
<Private>True</Private>
<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
</Reference>
<Reference Include="Antlr3.Runtime">
<Private>True</Private>
<HintPath>packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="App_GlobalResources\Resource.Designer.cs">
@@ -165,6 +156,7 @@
<Compile Include="App_Start\RouteConfig.cs" />
<Compile Include="Controllers\aboutController.cs" />
<Compile Include="Controllers\adminController.cs" />
<Compile Include="Controllers\supportController.cs" />
<Compile Include="Controllers\loginController.cs" />
<Compile Include="Controllers\mainController.cs" />
<Compile Include="Controllers\languageController.cs" />
@@ -179,23 +171,26 @@
<Compile Include="Migrations\Configuration.cs" />
<Compile Include="Models\classes\admin.cs" />
<Compile Include="Models\classes\AdminMyProjectsEditVM.cs" />
<Compile Include="Models\classes\affiliatelink.cs" />
<Compile Include="Models\classes\affiliatelinktranslation.cs" />
<Compile Include="Models\classes\AdminAffiliateLinkVM.cs" />
<Compile Include="Models\classes\AffiliateLinkVM.cs" />
<Compile Include="Models\classes\AdminSocialIconVM.cs" />
<Compile Include="Models\classes\socialicon.cs" />
<Compile Include="Models\classes\sitesetting.cs" />
<Compile Include="Models\classes\DescriptionFormatter.cs" />
<Compile Include="Models\classes\TotpHelper.cs" />
<Compile Include="Models\classes\PasswordHasher.cs" />
<Compile Include="Models\classes\SecretProtector.cs" />
<Compile Include="Models\classes\Context.cs" />
<Compile Include="Models\classes\LanguageTR.cs" />
<Compile Include="Models\classes\myprojects.cs" />
<Compile Include="Models\classes\myprojectstranslation.cs" />
<Compile Include="Models\classes\MyProjectVM.cs" />
<Compile Include="Models\classes\ProjectMediaVM.cs" />
<Compile Include="Models\classes\projectmedia.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="web_atakanozbancom\about.html" />
<Content Include="web_atakanozbancom\assets\css\style.css" />
<Content Include="web_atakanozbancom\assets\img\wp.jpg" />
<Content Include="web_atakanozbancom\contact.html" />
<Content Include="web_atakanozbancom\index.html" />
<Content Include="web_panel\index.html" />
<Content Include="web_panel\style.css" />
<Content Include="web_atakanozbancom\projects.html" />
<Content Include="Content\bootstrap-grid.css" />
<Content Include="Content\bootstrap-grid.min.css" />
<Content Include="Content\bootstrap-grid.rtl.css" />
@@ -212,88 +207,12 @@
<Content Include="Content\bootstrap.min.css" />
<Content Include="Content\bootstrap.rtl.css" />
<Content Include="Content\bootstrap.rtl.min.css" />
<Content Include="favicon.ico" />
<Content Include="Global.asax" />
<Content Include="Content\Site.css" />
<Content Include="Scripts\bootstrap.bundle.js" />
<Content Include="Scripts\bootstrap.bundle.min.js" />
<Content Include="Scripts\bootstrap.esm.js" />
<Content Include="Scripts\bootstrap.esm.min.js" />
<Content Include="Scripts\bootstrap.js" />
<Content Include="Scripts\bootstrap.min.js" />
<Content Include="web_atakanozbancom\phpmailer\.editorconfig" />
<Content Include="web_atakanozbancom\phpmailer\COMMITMENT" />
<Content Include="web_atakanozbancom\phpmailer\composer.json" />
<Content Include="web_atakanozbancom\phpmailer\form.php" />
<Content Include="web_atakanozbancom\phpmailer\get_oauth_token.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-af.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-ar.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-as.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-az.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-ba.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-be.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-bg.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-bn.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-ca.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-cs.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-da.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-de.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-el.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-eo.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-es.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-et.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-fa.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-fi.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-fo.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-fr.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-gl.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-he.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-hi.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-hr.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-hu.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-hy.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-id.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-it.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-ja.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-ka.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-ko.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-ku.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-lt.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-lv.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-mg.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-mn.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-ms.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-nb.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-nl.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-pl.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-pt.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-pt_br.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-ro.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-ru.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-si.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-sk.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-sl.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-sr.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-sr_latn.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-sv.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-tl.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-tr.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-uk.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-ur.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-vi.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-zh.php" />
<Content Include="web_atakanozbancom\phpmailer\language\phpmailer.lang-zh_cn.php" />
<Content Include="web_atakanozbancom\phpmailer\LICENSE" />
<Content Include="web_atakanozbancom\phpmailer\README.md" />
<Content Include="web_atakanozbancom\phpmailer\SECURITY.md" />
<Content Include="web_atakanozbancom\phpmailer\src\DSNConfigurator.php" />
<Content Include="web_atakanozbancom\phpmailer\src\Exception.php" />
<Content Include="web_atakanozbancom\phpmailer\src\OAuth.php" />
<Content Include="web_atakanozbancom\phpmailer\src\OAuthTokenProvider.php" />
<Content Include="web_atakanozbancom\phpmailer\src\PHPMailer.php" />
<Content Include="web_atakanozbancom\phpmailer\src\POP3.php" />
<Content Include="web_atakanozbancom\phpmailer\src\SMTP.php" />
<Content Include="web_atakanozbancom\phpmailer\VERSION" />
<None Include="Scripts\jquery-3.7.0.intellisense.js" />
<Content Include="Scripts\jquery-3.7.0.js" />
<Content Include="Scripts\jquery-3.7.0.min.js" />
@@ -305,6 +224,18 @@
<Content Include="Scripts\jquery.validate.unobtrusive.js" />
<Content Include="Scripts\jquery.validate.unobtrusive.min.js" />
<Content Include="Scripts\modernizr-2.8.3.js" />
<Content Include="web_atakanozbancom\about.html" />
<Content Include="web_atakanozbancom\assets\css\style.css" />
<Content Include="web_atakanozbancom\assets\img\wp.jpg" />
<Content Include="web_atakanozbancom\assets\js\paste-upload.js" />
<Content Include="web_atakanozbancom\contact.html" />
<Content Include="web_atakanozbancom\index.html" />
<Content Include="web_panel\index.html" />
<Content Include="web_panel\style.css" />
<Content Include="web_atakanozbancom\projects.html" />
<Content Include="favicon.ico" />
<Content Include="Global.asax" />
<Content Include="Content\Site.css" />
<Content Include="Web.config" />
<Content Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
@@ -314,23 +245,46 @@
</Content>
<Content Include="Views\Web.config" />
<Content Include="Views\Shared\Error.cshtml" />
<Content Include="Views\Home\About.cshtml" />
<Content Include="Views\Home\Contact.cshtml" />
<Content Include="Views\Home\Index.cshtml" />
<Content Include="Views\myprojects\projectposts.cshtml" />
<Content Include="Views\Shared\_AdminLayout.cshtml" />
<Content Include="Views\admin\index.cshtml" />
<Content Include="Views\admin\myprojects.cshtml" />
<Content Include="Views\admin\myprojectsget.cshtml" />
<Content Include="Views\admin\newmppost.cshtml" />
<Content Include="Views\admin\affiliatelinks.cshtml" />
<Content Include="Views\admin\newaffiliatepost.cshtml" />
<Content Include="Views\admin\affiliatelinkget.cshtml" />
<Content Include="Views\admin\socialicons.cshtml" />
<Content Include="Views\admin\newsocialicon.cshtml" />
<Content Include="Views\admin\socialiconget.cshtml" />
<Content Include="Views\admin\wallpaper.cshtml" />
<Content Include="Views\admin\usersettings.cshtml" />
<Content Include="Views\admin\security.cshtml" />
<Content Include="Views\login\index.cshtml" />
<Content Include="Views\login\verify.cshtml" />
<Content Include="Views\Shared\_PortfolioLayout.cshtml" />
<Content Include="Views\about\index.cshtml" />
<Content Include="Views\support\index.cshtml" />
<Content Include="Views\main\index.cshtml" />
<Content Include="Views\main\socialicons.cshtml" />
<Content Include="Views\main\wallpaper.cshtml" />
<Content Include="Views\myprojects\index.cshtml" />
<Content Include="Views\_ViewStart.cshtml" />
<Content Include="Views\Shared\Index.cshtml" />
</ItemGroup>
<ItemGroup>
<Folder Include="App_Data\" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Migrations\202504272001072_InitialCreate.resx">
<DependentUpon>202504272001072_InitialCreate.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="App_GlobalResources\Resource.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>Resource.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="App_GlobalResources\Resource.tr-TR.resx" />
</ItemGroup>
<ItemGroup>
<Content Include="Content\bootstrap.rtl.min.css.map" />
<Content Include="Content\bootstrap.rtl.css.map" />
@@ -358,16 +312,6 @@
<Content Include="Scripts\jquery-3.7.0.slim.min.map" />
<Content Include="Scripts\jquery-3.7.0.min.map" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Migrations\202504272001072_InitialCreate.resx">
<DependentUpon>202504272001072_InitialCreate.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="App_GlobalResources\Resource.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>Resource.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="App_GlobalResources\Resource.tr-TR.resx" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>