# Vampirewal.BlogCore
**Repository Path**: vampirewal/vampirewal.blogcore
## Basic Information
- **Project Name**: Vampirewal.BlogCore
- **Description**: 完全通过c#代码来启动一个博客页面,具体更新内容可拉取项目之后查看更新日志
- **Primary Language**: C#
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2024-06-25
- **Last Updated**: 2024-09-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[](https://www.nuget.org/packages/Vampirewal.BlogCore/)
[](https://www.nuget.org/packages/Vampirewal.BlogCore/)
Vampirewal.BlogCore
#### 介绍
完全通过c#代码来启动一个博客页面,实际是我在后台编辑了模版,把里面的替换了而已
## 🖥支持环境
- .NET 6.0及以上。
## ✨简单示例
#### 可直接git拉取本项目启动Test查看
``` cs
public static void Main(string[] args)
{
App.RunBlog(args,html =>
{
html.SetTitle("VampirewalBlog博客")
.SetKeywords("haha")
.SetDescription("测试博客")
.SetIcoPath("/assets/logo.ico")
.SetLogoPath("/assets/Vampirewal-Logo.png")
.SetTopMenu(top =>
{
TopMenu top1 = new TopMenu()
{
Id = "0",
Name = "项目地址",
Children = new List()
{
new TopMenu()
{
Id="0-1",
Name="Gitee",
Control=App.CreateLink("Gitee",href:"https://gitee.com/vampirewal/vampirewal.blogcore",targetType: LinkTargetType.Blank)
}
}
};
top.Add(top1);
});
}, service =>
{
//加载自定义配置
service.AddBlogOptions();
UserManager user = new UserManager() { Name = "测试" };
service.AddSingleton(user);
//这里添加其他的数据库ORM之类的,具体详细的可以拉取代码查看
//service.AddSqlSugar();
}, app =>
{
app.UseForwardedHeaders();
app.UseRouting();
}, app =>
{
}, Config_OnLoading, Config_OnLoaded);
}
private static void Config_OnLoaded(HttpRequest request, string html)
{
}
private static void Config_OnLoading(HttpRequest request)
{
var ip = App.GetLocalhost(request);
if (request.Headers.ContainsKey("X-Forwarded-For"))
{
// X-Forwarded-For可能包含多个IP地址,逗号分隔,第一个是非代理的客户端IP
string xForwardedFor = request.Headers["X-Forwarded-For"];
string[] addresses = xForwardedFor.Split(',');
string clientIp = addresses.FirstOrDefault().Trim(); // 获取第一个IP地址作为客户端IP
Console.WriteLine($"客户端真实IP: {clientIp}");
}
else
{
// 如果没有通过代理,则直接使用RemoteIpAddress
string clientIp = request.HttpContext.Connection.RemoteIpAddress.ToString();
Console.WriteLine($"客户端真实IP: {clientIp}");
}
}
```